
# update.fig-- display text buffer
# Copyright (C) 2021 mn
#
# This program is free software: you can redistribute it and/or modify 
#
# it under the terms of the GNU Affero General Public License as published by 
# the Free Software Foundation, either version 3 of the License, or 
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY; without even the implied warranty of 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License 
# along with this program. If not, see <http://www.gnu.org/licenses/>.

function vget g k
python
    return g[k]
    fig
    fig

function update p g 
    c 0
    now cls
python
    g["text"] = p
    fig
    plen p  len   str         len plus 1
    try
        scopeb vget g "scopeb" val
        scopef vget g "scopef" val
    except
        scopeb -1
        scopef -1
        fig
    dispinsp vget g "insp" val plus 1
    forin each p
        sep " "
        textlen p len
        now c     plus 1      swap now c
        cs  c     str
        ifmore textlen 1
            ifequal c dispinsp 
                sep ">"
                fig
            fig
        scope 1
        ifmore scopeb -1
            scopediff dispinsp minus scopeb
            ifless c scopediff
                scope 0
                next        
            next
        ifmore scopef -1
            scopediff dispinsp plus scopef
            ifmore c scopediff
                scope 0
                next        
            next
        iftrue scope
            now " "   times plen  plus cs     plus sep  right plen  prints
            now each  print
            next
        next
    now return g
    fig

